﻿using System;
using System.Collections.Generic;
using System.Text;

namespace ArgusLib.FFmpeg.avcodec.Interop
{
	public enum FF_PROFILE : int
	{
		FF_PROFILE_UNKNOWN = -99,
		FF_PROFILE_RESERVED = -100,

		FF_PROFILE_AAC_MAIN = 0,
		FF_PROFILE_AAC_LOW  = 1,
		FF_PROFILE_AAC_SSR  = 2,
		FF_PROFILE_AAC_LTP  = 3,
		FF_PROFILE_AAC_HE   = 4,
		FF_PROFILE_AAC_HE_V2 = 28,
		FF_PROFILE_AAC_LD   = 22,
		FF_PROFILE_AAC_ELD  = 38,
		FF_PROFILE_MPEG2_AAC_LOW = 128,
		FF_PROFILE_MPEG2_AAC_HE  = 131,

		FF_PROFILE_DTS         = 20,
		FF_PROFILE_DTS_ES      = 30,
		FF_PROFILE_DTS_96_24   = 40,
		FF_PROFILE_DTS_HD_HRA  = 50,
		FF_PROFILE_DTS_HD_MA   = 60,

		FF_PROFILE_MPEG2_422    = 0,
		FF_PROFILE_MPEG2_HIGH   = 1,
		FF_PROFILE_MPEG2_SS     = 2,
		FF_PROFILE_MPEG2_SNR_SCALABLE  = 3,
		FF_PROFILE_MPEG2_MAIN   = 4,
		FF_PROFILE_MPEG2_SIMPLE = 5,

		FF_PROFILE_H264_CONSTRAINED  = (1<<9),  // 8+1; constraint_set1_flag
		FF_PROFILE_H264_INTRA        = (1<<11), // 8+3; constraint_set3_flag

		FF_PROFILE_H264_BASELINE             = 66,
		FF_PROFILE_H264_CONSTRAINED_BASELINE = (66|FF_PROFILE_H264_CONSTRAINED),
		FF_PROFILE_H264_MAIN                 = 77,
		FF_PROFILE_H264_EXTENDED             = 88,
		FF_PROFILE_H264_HIGH                 = 100,
		FF_PROFILE_H264_HIGH_10              = 110,
		FF_PROFILE_H264_HIGH_10_INTRA        = (110|FF_PROFILE_H264_INTRA),
		FF_PROFILE_H264_HIGH_422             = 122,
		FF_PROFILE_H264_HIGH_422_INTRA       = (122|FF_PROFILE_H264_INTRA),
		FF_PROFILE_H264_HIGH_444             = 144,
		FF_PROFILE_H264_HIGH_444_PREDICTIVE  = 244,
		FF_PROFILE_H264_HIGH_444_INTRA       = (244|FF_PROFILE_H264_INTRA),
		FF_PROFILE_H264_CAVLC_444            = 44,

		FF_PROFILE_VC1_SIMPLE   = 0,
		FF_PROFILE_VC1_MAIN     = 1,
		FF_PROFILE_VC1_COMPLEX  = 2,
		FF_PROFILE_VC1_ADVANCED = 3,

		FF_PROFILE_MPEG4_SIMPLE                     = 0,
		FF_PROFILE_MPEG4_SIMPLE_SCALABLE            = 1,
		FF_PROFILE_MPEG4_CORE                       = 2,
		FF_PROFILE_MPEG4_MAIN                       = 3,
		FF_PROFILE_MPEG4_N_BIT                      = 4,
		FF_PROFILE_MPEG4_SCALABLE_TEXTURE           = 5,
		FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION      = 6,
		FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE     = 7,
		FF_PROFILE_MPEG4_HYBRID                     = 8,
		FF_PROFILE_MPEG4_ADVANCED_REAL_TIME         = 9,
		FF_PROFILE_MPEG4_CORE_SCALABLE             = 10,
		FF_PROFILE_MPEG4_ADVANCED_CODING           = 11,
		FF_PROFILE_MPEG4_ADVANCED_CORE             = 12,
		FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE = 13,
		FF_PROFILE_MPEG4_SIMPLE_STUDIO             = 14,
		FF_PROFILE_MPEG4_ADVANCED_SIMPLE           = 15,

		FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0   = 0,
		FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1   = 1,
		FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION  = 2,
		FF_PROFILE_JPEG2000_DCINEMA_2K = 3,
		FF_PROFILE_JPEG2000_DCINEMA_4K = 4
	}
}
